home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group01b.txt / 000163_icon-group-sender_Tue Oct 30 16:51:46 2001.msg < prev    next >
Internet Message Format  |  2002-01-03  |  3KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id f9UNpeE13236
  4.     for icon-group-addresses; Tue, 30 Oct 2001 16:51:40 -0700 (MST)
  5. Message-Id: <200110302351.f9UNpeE13236@baskerville.CS.Arizona.EDU>
  6. From: Chris.D.Tenaglia@jci.com
  7. Subject: Trick or Treat?
  8. To: icon-group@cs.arizona.edu
  9. Date: Tue, 30 Oct 2001 13:25:30 -0600
  10. X-MIMETrack: Serialize by Router on jwimkrs1.na.jci.com/NA/Johnson_Controls(Release 5.07a
  11.  |May 14, 2001) at 10/30/2001 03:13:05 PM
  12. Errors-To: icon-group-errors@cs.arizona.edu
  13. Status: RO
  14. Content-Length: 2581
  15.  
  16. Code snippits for 10/31/2001. Ever wish you had a time machine?
  17. I did. Here are two samples. yesterday returns yesterday's date
  18. and tomorrow returns tomorrows date. So simple, so useful.
  19. --------------
  20. #
  21. # file : yesterday.icn
  22. # desc : generate yesterday's date mm/dd/yy
  23. # use  : call from scripts etc,... avoid today!
  24. #
  25. # update         by         what
  26. # 30-oct-2001    tenaglia   initial write
  27. #
  28. procedure main()
  29.   last := table()
  30.   last["01"] := 31
  31.   last["02"] := 28
  32.   last["03"] := 31
  33.   last["04"] := 30
  34.   last["05"] := 31
  35.   last["06"] := 30
  36.   last["07"] := 31
  37.   last["08"] := 31
  38.   last["09"] := 30
  39.   last["10"] := 31
  40.   last["11"] := 30
  41.   last["12"] := 31
  42.   last["-1"] := 31
  43.   field := parse(&date,'/')
  44.   year := field[1]
  45.   yy := year[3:0]
  46.   mm := field[2]
  47.   dd := field[3]
  48.   if (year % 4) = 0 then last["02"] := 29
  49.   dd -:= 1
  50.   if dd < 1 then
  51.     {
  52.     mm -:= 1
  53.     dd := last[right(mm,2,0)]
  54.     if mm < 1 then
  55.       {
  56.       yy -:= 1
  57.       mm := 12
  58.       }
  59.     }
  60.   result := right(mm,2,0) || "/" ||
  61.             right(dd,2,0) || "/" ||
  62.             right(yy,2,0)
  63.   write(result)
  64.   end
  65. #
  66. # parse a string into a list with respect to a delimiter
  67. #
  68. procedure parse(line,delims)
  69.   static chars
  70.   chars  := &cset -- delims
  71.   tokens := []
  72.   line ? while tab(upto(chars)) do put(tokens,tab(many(chars)))
  73.   return tokens
  74.   end
  75. ------------------------------------
  76. #
  77. # file : tomorrow.icn
  78. # desc : generate tomorrow's date mm/dd/yy
  79. # use  : call from scripts etc,... avoid today!
  80. #
  81. # update         by         what
  82. # 30-oct-2001    tenaglia   initial write
  83. #
  84. procedure main()
  85.   last := table()
  86.   last["01"] := 31
  87.   last["02"] := 28
  88.   last["03"] := 31
  89.   last["04"] := 30
  90.   last["05"] := 31
  91.   last["06"] := 30
  92.   last["07"] := 31
  93.   last["08"] := 31
  94.   last["09"] := 30
  95.   last["10"] := 31
  96.   last["11"] := 30
  97.   last["12"] := 31
  98.   last["0"]  := 31
  99.   last["13"] := 31
  100.   field := parse(&date,'/')
  101.   year := field[1]
  102.   yy := year[3:0]
  103.   mm := field[2]
  104.   dd := field[3]
  105.   if (year % 4) = 0 then last["02"] := 29
  106.   dd +:= 1
  107.   if dd > last[mm] then
  108.     {
  109.     mm +:= 1
  110.     dd := "01"
  111.     if mm > 12 then
  112.       {
  113.       yy +:= 1
  114.       mm := "01"
  115.       }
  116.     }
  117.   result := right(mm,2,0) || "/" ||
  118.             right(dd,2,0) || "/" ||
  119.             right(yy,2,0)
  120.   write(result)
  121.   end
  122. #
  123. # parse a string into a list with respect to a delimiter
  124. #
  125. procedure parse(line,delims)
  126.   static chars
  127.   chars  := &cset -- delims
  128.   tokens := []
  129.   line ? while tab(upto(chars)) do put(tokens,tab(many(chars)))
  130.   return tokens
  131.   end
  132. --------------------------------
  133. Chris Tenaglia, technical analyst, Johnson Controls
  134.  
  135.  
  136.